package org.jeecg.modules.FinanceModule.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.FinanceModule.entity.RuturnMoneyEntity;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;

@Component
public interface ReturnMoneyMapper {

    //查询申请退款的列表
    IPage<RuturnMoneyEntity> getReturnMoneylist(Page<RuturnMoneyEntity> page, @Param("orderSn") String orderSn, @Param("companyCode") String companyCode, @Param("status") Integer status,@Param("companyName") String companyName);


    //获得面料退款列表
    IPage<RuturnMoneyEntity> getorderreturnList(Page<RuturnMoneyEntity> page, @Param("type") int type);


    //拒绝申请退款
    int refuseApply(@Param("id") int id);

    //同意退款
    int approve(@Param("id") int id, @Param("remark") String remark, @Param("money") String money,@Param("userId") String userId);

    //通过退款表id获取售后订单id
    String getorderAfterIdbyretrurnId(@Param("id") int id);

    //往售后跟踪记录表中插入退款后信息
    void insertAfterOrdertrackRunfund(@Param("l") long l, @Param("orderAfterId") String orderAfterId,@Param("s")  String s,@Param("date")  Date date,@Param("i") int i);

    //如果是面料退款则修改购物车表的状态
    void updategouwuchestatus(@Param("parseInt") int parseInt);

    //通过退款Id获取三个付款金额
    HashMap<String, BigDecimal> getthreeMoneymap(@Param("id") int id);

    //获取旧的剩余额度
    String getoldremainingLimit(@Param("parseInt") int parseInt);

    //添加后修改剩余月结额度
    void updateuserRemainingLimit(@Param("parseInt") int parseInt,@Param("valueOf") String valueOf);

    //获取老的抵扣额度
    String getolddeductionLimit(@Param("parseInt") int parseInt);

    //添加后修改抵扣额度
    void updateuserDeductionLimit(@Param("parseInt") int parseInt,@Param("valueOf") String valueOf);

    void updateAccountBalance(@Param("parseInt") int parseInt,@Param("valueOf")  String valueOf);

    //通过员工id查询父级公司所有者id
    String getCompanyuserId(@Param("userId") int userId);

    //修改这条售后的实际退款金额
    void updaterealRefund(@Param("orderAfterId") int orderAfterId, @Param("money") String money);

    //往业务流水表插入退款数据
    void insertrefundwater(@Param("valueOf") String valueOf, @Param("orderType") int orderType, @Param("date") Date date, @Param("orderSn") String orderSn, @Param("money") String money, @Param("userId") String userId, @Param("quanxian") String quanxian,@Param("storeId") String storeId,@Param("tuikuanxinxi") String tuikuanxinxi,@Param("status") int status);

    //通过userId查询权限
    String getquanxianbyuserId(@Param("userId") int userId);

    //通过订单编号查询门店id
    String getstoreIdbyorderSn(@Param("orderSn") String orderSn);
}
